import { reqGoodInfo,reqAddOrUpdateShopCart } from '@/api'
import {getUUID} from '@/utils/uuid_token'
//home模块的小仓库
//state仓库存储数据的地方
const detail = {
    state: {
        //state中的数据默认初始值不要瞎写
        goodInfo: {},
        uuid_token:getUUID()
    },
    //mutations修改state唯一手段
    mutations: {
        GETGOODINFO(state, goodInfo) {
            state.goodInfo = goodInfo//截取数据
        },

    },
    //action处理action 可以书写自己的业务逻辑,也可以处理异步
    actions: {
        async getGoodInfo({ commit }, skuId) {
            let result = await reqGoodInfo(skuId)
            if (result.code === 200) {
                commit("GETGOODINFO", result.data)
            }
        },
        async addOrUpdateShopCart({commit},{skuId,skuNum}){
            //因为服务器没有返回数据,所以我们这里不需要三件套
            let result = await reqAddOrUpdateShopCart(skuId,skuNum)
            // 当前函数如果执行返回的是promise对象,要么成功,要么失败
            if(result.code == 200){
                //代表加入购物车成功
                return "ok"
            }else{
                //代表加入购物车失败
                return Promise.reject(new Error("faile"))
            }
        }

    },
    //getters 可以理解为计算属性,用于简化仓库数据,让组件获取仓库的数据更加方便
    getters: {
        //路径导航简化
        categoryView(state){
            return state.goodInfo.categoryView || {}
        },
        //简化产品信息的数据
        skuInfo(state){
            return state.goodInfo.skuInfo || {}
        },
        spuSaleAttrList(state){
            return state.goodInfo.spuSaleAttrList || []
        }
    }
}

export default detail